home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 2 / Atari Mega Archive CD - Volume 2.iso / minix / up1510b.tgz / up1510b / src / commands / basename.c < prev    next >
C/C++ Source or Header  |  1990-07-19  |  609b  |  36 lines

  1. /* basename - print the last part of a path:    Author: Blaine Garfolo */
  2.  
  3. #define NULL 0
  4.  
  5. main(argc, argv)
  6. int argc;
  7. char *argv[];
  8. {
  9.   int j, suflen;
  10.   char *c;
  11.   char *d;
  12.   extern char *rindex();
  13.  
  14.   if (argc < 2) {
  15.     std_err("Usage: basename string [suffix]  \n");
  16.     exit(1);
  17.   }
  18.   c = argv[1];
  19.   d = rindex(argv[1], '/');
  20.   if (d == NULL)
  21.     d = argv[1];
  22.   else
  23.     d++;
  24.  
  25.   if (argc == 2) {        /* if no suffix */
  26.     prints("%s\n", d);
  27.     exit(0);
  28.   } else {            /* if suffix is present */
  29.     c = d;
  30.     suflen = strlen(argv[2]);
  31.     j = strlen(c) - suflen;
  32.     if (strcmp(c + j, argv[2]) == 0) *(c + j) = 0;
  33.   }
  34.   prints("%s\n", c);
  35. }
  36.